What is this?

E11.5 (or E11?) mouse RPE

Run on 10x v3 platform

This is a trial run to determine whether Elan can process mouse tissue at this very early time point.

When

2022-05-10

Process Data

Rscript -e 'library(rmarkdown); rmarkdown::render("00_process.Rmd", "html_document")'

Load Data

Quick peek at Elan’s favorite Zfp503 and how which cluster it is differentially expressed in

library(tidyverse)
library(Seurat)
load('../data/00_process_output.Rdata')
seurat.markersCC <- seurat.markersCC %>% bind_rows(.id = 'cluster') %>% as_tibble(rownames = 'Gene') %>% mutate(Gene = gsub('\\.\\.\\.\\d+','',Gene))
# seurat.markersCC %>% 
#   group_by(cluster) %>% slice_max(avg_log2FC, n = 3, with_ties = FALSE) %>% 
#   DT::datatable()
seurat.markersCC %>% bind_rows() %>%  filter(Gene == 'Zfp503')

GO Terms

For each cluster

To help roughly figure out which clusters as which cell types

library(clusterProfiler)
library(enrichplot)
eg_universe = bitr(seuratCC %>% row.names(), fromType="SYMBOL", toType="ENTREZID", OrgDb="org.Mm.eg.db")
'select()' returned 1:1 mapping between keys and columns
Warning in bitr(seuratCC %>% row.names(), fromType = "SYMBOL", toType = "ENTREZID",  :
  7.96% of input gene IDs are fail to map...
go_enrichCC <- list()
for (i in seurat.markersCC$cluster %>% unique()){
  print(i)
  diff_genes <- seurat.markersCC %>% filter(cluster  == i)
  eg_diff_genes <- bitr(diff_genes$Gene, fromType="SYMBOL", toType="ENTREZID", OrgDb="org.Mm.eg.db")
  eg_diff_genes <- diff_genes %>% left_join(., eg_diff_genes, by = c('Gene' = 'SYMBOL'))
  go_enrichCC[[i]] <- enrichGO(gene          = eg_diff_genes$ENTREZID,
                             universe      = eg_universe$ENTREZID,
                             OrgDb         = org.Mm.eg.db,
                             ont           = "all",
                             pAdjustMethod = "BH",
                             pvalueCutoff  = 0.01,
                             qvalueCutoff  = 0.05,
                             readable      = TRUE)
}
[1] "4"
'select()' returned 1:1 mapping between keys and columns
Warning in bitr(diff_genes$Gene, fromType = "SYMBOL", toType = "ENTREZID",  :
  1.12% of input gene IDs are fail to map...
[1] "2"
'select()' returned 1:1 mapping between keys and columns
Warning in bitr(diff_genes$Gene, fromType = "SYMBOL", toType = "ENTREZID",  :
  1.79% of input gene IDs are fail to map...
[1] "3"
'select()' returned 1:1 mapping between keys and columns
Warning in bitr(diff_genes$Gene, fromType = "SYMBOL", toType = "ENTREZID",  :
  2.88% of input gene IDs are fail to map...
[1] "0"
'select()' returned 1:1 mapping between keys and columns
Warning in bitr(diff_genes$Gene, fromType = "SYMBOL", toType = "ENTREZID",  :
  11.86% of input gene IDs are fail to map...
[1] "6"
'select()' returned 1:1 mapping between keys and columns
Warning in bitr(diff_genes$Gene, fromType = "SYMBOL", toType = "ENTREZID",  :
  1.96% of input gene IDs are fail to map...
[1] "1"
'select()' returned 1:1 mapping between keys and columns
Warning in bitr(diff_genes$Gene, fromType = "SYMBOL", toType = "ENTREZID",  :
  1.92% of input gene IDs are fail to map...
[1] "5"
'select()' returned 1:1 mapping between keys and columns
[1] "7"
'select()' returned 1:1 mapping between keys and columns
Warning in bitr(diff_genes$Gene, fromType = "SYMBOL", toType = "ENTREZID",  :
  0.48% of input gene IDs are fail to map...
[1] "8"
'select()' returned 1:1 mapping between keys and columns
Warning in bitr(diff_genes$Gene, fromType = "SYMBOL", toType = "ENTREZID",  :
  1.6% of input gene IDs are fail to map...
[1] "9"
'select()' returned 1:1 mapping between keys and columns
Warning in bitr(diff_genes$Gene, fromType = "SYMBOL", toType = "ENTREZID",  :
  4.84% of input gene IDs are fail to map...
[1] "12"
'select()' returned 1:1 mapping between keys and columns
Warning in bitr(diff_genes$Gene, fromType = "SYMBOL", toType = "ENTREZID",  :
  0.82% of input gene IDs are fail to map...
[1] "10"
'select()' returned 1:1 mapping between keys and columns
Warning in bitr(diff_genes$Gene, fromType = "SYMBOL", toType = "ENTREZID",  :
  1.39% of input gene IDs are fail to map...
[1] "13"
'select()' returned 1:1 mapping between keys and columns
Warning in bitr(diff_genes$Gene, fromType = "SYMBOL", toType = "ENTREZID",  :
  1.91% of input gene IDs are fail to map...
[1] "11"
'select()' returned 1:1 mapping between keys and columns
for (i in seurat.markersCC$cluster %>% unique() %>% sort()){
  print(dotplot(go_enrichCC[[i]], showCategory=30) + ggtitle(glue::glue("Dotplot for cluster {i}")))
}

NA
NA

Hand label each cluster (guessing the cell type)

ct_cluster_CC <- rbind(c(0, "RPC"),
  c(1, 'RPC'),
  c(2, 'RPE Precursor'),
  c(3, 'Fibroblast'),
  c(4, 'Fibroblast'),
  c(5, 'Optic Fissure'),
  c(6, 'Proliferating RPC'),
  c(7, 'Epithelial'),
  c(8, 'Red Blood Cell'),
  c(9, 'Corneal Progenitor'),
  c(10, 'Blood Vessel'),
  c(11, "PBMC"),
  c(12, "NK/T"),
  c(13, "Lens"
  )) %>% data.frame()
colnames(ct_cluster_CC) <- c('seurat_clusters','CellType')
seuratCC@meta.data$CellType <- seuratCC@meta.data %>% dplyr::select(seurat_clusters) %>% left_join(ct_cluster_CC) %>% pull(CellType)
Joining, by = "seurat_clusters"
# ct_cluster <- c(0, "RPC",
#   1, 'Fibroblasts',
#   2, 'RPC',
#   3, 'RPE Precursor',
#   4, 'Cornea - JCT - TM?',
#   5, 'Optic Fissure',
#   6, 'Proliferating RPC',
#   7, 'Epithelial',
#   8, 'Red Blood Cell',
#   9, '?',
#   10, 'Vessel',
#   11, "Macrophage/Microglia")

UMAP

With my poorly researched cell type assignments

DimPlot(seuratCC, reduction = "umap", group.by = 'CellType', label = TRUE, label.box = TRUE) + 
  scale_color_manual(values = pals::alphabet2() %>% unname()) +
  scale_fill_manual(values = pals::alphabet2() %>% unname() ) 
Scale for 'fill' is already present. Adding another scale for 'fill', which will replace the existing scale.

Cell Phase

DimPlot(seuratCC, group.by = 'Phase')

Markers

FeaturePlot(seuratCC, features = c("Pax2", "Ntn1", "Smoc2", "Vax1", 
                                 "Ttr", "Dct", "Rho", "Zfp503", "Mitf",
                                 "Pax6"))

Top 10 Cluster 5 (Optic Fissure?) Diff Genes


top_genes <- seurat.markersCC %>%  
  left_join(seuratCC@meta.data %>% as_tibble() %>% 
              dplyr::select(cluster = seurat_clusters, CellType) %>% unique()) %>% 
  group_by(cluster, CellType) %>% top_n(30, avg_log2FC) %>% 
  filter(cluster == 5) %>% head(15) %>% pull(Gene)
Joining, by = "cluster"
FeaturePlot(seuratCC, features = top_genes)

Zfp503 Like Genes

Zfp503 is overexpressed in both clusters 2 and 5

What other genes have this characteristic?


 seurat.markersCC %>% filter(cluster %in% c(2,5), avg_log2FC > 0.7, p_val_adj < 0.01) %>% 
  group_by(Gene) %>% 
  summarise(Count = n(), avg_log2FC = mean(avg_log2FC)) %>% 
  filter(Count == 2)

FeaturePlot(seuratCC, features = seurat.markersCC %>% filter(cluster %in% c(2,5), avg_log2FC > 0.7, p_val_adj < 0.01) %>% 
  group_by(Gene) %>% 
  summarise(Count = n(), avg_log2FC = mean(avg_log2FC)) %>% 
  filter(Count == 2) %>% 
    pull(Gene))

Cluster diff expressed genes

Top 30 gene for each cluster (I was using this table along with the GO terms to guess each cell type for each cluster)

seurat.markersCC %>%  
  left_join(seuratCC@meta.data %>% as_tibble() %>% 
              dplyr::select(cluster = seurat_clusters, CellType) %>% unique()) %>% 
  group_by(cluster, CellType) %>% top_n(30, avg_log2FC) %>% 
  relocate(CellType) %>% 
  arrange(cluster) %>% 
  DT::datatable()
Joining, by = "cluster"

Quick comments

  1. The experiment appears to have worked
  2. You seem to have a Optic Fissure specific cluster?? Cluster 5. Several interesting genes in that cluster.

Sesssion Info

devtools::session_info()
─ Session info  🚰  🤴  🇨🇺   ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 hash: potable water, prince, flag: Cuba

 setting  value
 version  R version 4.1.2 (2021-11-01)
 os       macOS Catalina 10.15.7
 system   x86_64, darwin17.0
 ui       RStudio
 language (EN)
 collate  en_US.UTF-8
 ctype    en_US.UTF-8
 tz       America/New_York
 date     2022-05-10
 rstudio  2021.09.0+351 Ghost Orchid (desktop)
 pandoc   2.14.0.3 @ /Applications/RStudio.app/Contents/MacOS/pandoc/ (via rmarkdown)

─ Packages ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 package          * version  date (UTC) lib source
 abind              1.4-5    2016-07-21 [1] CRAN (R 4.1.0)
 AnnotationDbi    * 1.56.1   2021-10-29 [1] Bioconductor
 ape                5.5      2021-04-25 [1] CRAN (R 4.1.2)
 aplot              0.1.1    2021-09-22 [1] CRAN (R 4.1.2)
 assertthat         0.2.1    2019-03-21 [1] CRAN (R 4.1.2)
 backports          1.3.0    2021-10-27 [1] CRAN (R 4.1.2)
 Biobase          * 2.54.0   2021-10-26 [1] Bioconductor
 BiocGenerics     * 0.40.0   2021-10-26 [1] Bioconductor
 BiocParallel       1.28.0   2021-10-26 [1] Bioconductor
 Biostrings         2.62.0   2021-10-26 [1] Bioconductor
 bit                4.0.4    2020-08-04 [1] CRAN (R 4.1.2)
 bit64              4.0.5    2020-08-30 [1] CRAN (R 4.1.2)
 bitops             1.0-7    2021-04-24 [1] CRAN (R 4.1.2)
 blob               1.2.2    2021-07-23 [1] CRAN (R 4.1.2)
 broom              0.7.10   2021-10-31 [1] CRAN (R 4.1.2)
 bslib              0.3.1    2021-10-06 [1] CRAN (R 4.1.0)
 cachem             1.0.6    2021-08-19 [1] CRAN (R 4.1.0)
 callr              3.7.0    2021-04-20 [1] CRAN (R 4.1.2)
 cellranger         1.1.0    2016-07-27 [1] CRAN (R 4.1.2)
 cli                3.1.0    2021-10-27 [1] CRAN (R 4.1.2)
 cluster            2.1.2    2021-04-17 [1] CRAN (R 4.1.2)
 clusterProfiler  * 4.2.2    2022-01-13 [1] Bioconductor
 codetools          0.2-18   2020-11-04 [1] CRAN (R 4.1.2)
 colorspace         2.0-2    2021-06-24 [1] CRAN (R 4.1.2)
 cowplot            1.1.1    2020-12-30 [1] CRAN (R 4.1.0)
 crayon             1.4.2    2021-10-29 [1] CRAN (R 4.1.2)
 crosstalk          1.2.0    2021-11-04 [1] CRAN (R 4.1.0)
 data.table         1.14.2   2021-09-27 [1] CRAN (R 4.1.2)
 DBI                1.1.1    2021-01-15 [1] CRAN (R 4.1.2)
 dbplyr             2.1.1    2021-04-06 [1] CRAN (R 4.1.2)
 deldir             1.0-6    2021-10-23 [1] CRAN (R 4.1.2)
 desc               1.4.0    2021-09-28 [1] CRAN (R 4.1.2)
 devtools           2.4.2    2021-06-07 [1] CRAN (R 4.1.2)
 dichromat          2.0-0    2013-01-24 [1] CRAN (R 4.1.0)
 digest             0.6.28   2021-09-23 [1] CRAN (R 4.1.2)
 DO.db              2.9      2021-11-16 [1] Bioconductor
 DOSE               3.20.0   2021-10-26 [1] Bioconductor
 downloader         0.4      2015-07-09 [1] CRAN (R 4.1.2)
 dplyr            * 1.0.7    2021-06-18 [1] CRAN (R 4.1.2)
 DT                 0.19     2021-09-02 [1] CRAN (R 4.1.0)
 ellipsis           0.3.2    2021-04-29 [1] CRAN (R 4.1.2)
 enrichplot       * 1.14.1   2021-10-31 [1] Bioconductor
 evaluate           0.14     2019-05-28 [1] CRAN (R 4.1.2)
 fansi              0.5.0    2021-05-25 [1] CRAN (R 4.1.2)
 farver             2.1.0    2021-02-28 [1] CRAN (R 4.1.2)
 fastmap            1.1.0    2021-01-25 [1] CRAN (R 4.1.2)
 fastmatch          1.1-3    2021-07-23 [1] CRAN (R 4.1.2)
 fgsea              1.20.0   2021-10-26 [1] Bioconductor
 fitdistrplus       1.1-6    2021-09-28 [1] CRAN (R 4.1.2)
 forcats          * 0.5.1    2021-01-27 [1] CRAN (R 4.1.2)
 fs                 1.5.0    2020-07-31 [1] CRAN (R 4.1.2)
 future             1.23.0   2021-10-31 [1] CRAN (R 4.1.0)
 future.apply       1.8.1    2021-08-10 [1] CRAN (R 4.1.0)
 generics           0.1.1    2021-10-25 [1] CRAN (R 4.1.2)
 GenomeInfoDb       1.30.0   2021-10-26 [1] Bioconductor
 GenomeInfoDbData   1.2.7    2021-11-09 [1] Bioconductor
 ggforce            0.3.3    2021-03-05 [1] CRAN (R 4.1.2)
 ggfun              0.0.4    2021-09-17 [1] CRAN (R 4.1.0)
 ggplot2          * 3.3.5    2021-06-25 [1] CRAN (R 4.1.0)
 ggplotify          0.1.0    2021-09-02 [1] CRAN (R 4.1.0)
 ggraph             2.0.5    2021-02-23 [1] CRAN (R 4.1.2)
 ggrepel            0.9.1    2021-01-15 [1] CRAN (R 4.1.0)
 ggridges           0.5.3    2021-01-08 [1] CRAN (R 4.1.2)
 ggtree             3.2.0    2021-10-26 [1] Bioconductor
 globals            0.14.0   2020-11-22 [1] CRAN (R 4.1.0)
 glue               1.5.0    2021-11-07 [1] CRAN (R 4.1.2)
 GO.db              3.14.0   2021-11-16 [1] Bioconductor
 goftest            1.2-3    2021-10-07 [1] CRAN (R 4.1.2)
 GOSemSim           2.20.0   2021-10-26 [1] Bioconductor
 graphlayouts       0.7.1    2020-10-26 [1] CRAN (R 4.1.2)
 gridExtra          2.3      2017-09-09 [1] CRAN (R 4.1.0)
 gridGraphics       0.5-1    2020-12-13 [1] CRAN (R 4.1.0)
 gtable             0.3.0    2019-03-25 [1] CRAN (R 4.1.2)
 haven              2.4.3    2021-08-04 [1] CRAN (R 4.1.2)
 hms                1.1.1    2021-09-26 [1] CRAN (R 4.1.2)
 htmltools          0.5.2    2021-08-25 [1] CRAN (R 4.1.2)
 htmlwidgets        1.5.4    2021-09-08 [1] CRAN (R 4.1.0)
 httpuv             1.6.3    2021-09-09 [1] CRAN (R 4.1.0)
 httr               1.4.2    2020-07-20 [1] CRAN (R 4.1.2)
 ica                1.0-2    2018-05-24 [1] CRAN (R 4.1.2)
 igraph             1.2.8    2021-11-07 [1] CRAN (R 4.1.2)
 IRanges          * 2.28.0   2021-10-26 [1] Bioconductor
 irlba              2.3.5    2021-12-06 [1] CRAN (R 4.1.2)
 jquerylib          0.1.4    2021-04-26 [1] CRAN (R 4.1.2)
 jsonlite           1.7.2    2020-12-09 [1] CRAN (R 4.1.2)
 KEGGREST           1.34.0   2021-10-26 [1] Bioconductor
 KernSmooth         2.23-20  2021-05-03 [1] CRAN (R 4.1.2)
 knitr              1.36     2021-09-29 [1] CRAN (R 4.1.2)
 labeling           0.4.2    2020-10-20 [1] CRAN (R 4.1.2)
 later              1.3.0    2021-08-18 [1] CRAN (R 4.1.0)
 lattice            0.20-45  2021-09-22 [1] CRAN (R 4.1.2)
 lazyeval           0.2.2    2019-03-15 [1] CRAN (R 4.1.0)
 leiden             0.3.9    2021-07-27 [1] CRAN (R 4.1.2)
 lifecycle          1.0.1    2021-09-24 [1] CRAN (R 4.1.2)
 listenv            0.8.0    2019-12-05 [1] CRAN (R 4.1.0)
 lmtest             0.9-39   2021-11-07 [1] CRAN (R 4.1.2)
 lubridate          1.8.0    2021-10-07 [1] CRAN (R 4.1.2)
 magrittr           2.0.1    2020-11-17 [1] CRAN (R 4.1.2)
 mapproj            1.2.7    2020-02-03 [1] CRAN (R 4.1.0)
 maps               3.4.0    2021-09-25 [1] CRAN (R 4.1.0)
 MASS               7.3-54   2021-05-03 [1] CRAN (R 4.1.2)
 Matrix             1.3-4    2021-06-01 [1] CRAN (R 4.1.2)
 matrixStats        0.61.0   2021-09-17 [1] CRAN (R 4.1.2)
 memoise            2.0.0    2021-01-26 [1] CRAN (R 4.1.0)
 mgcv               1.8-38   2021-10-06 [1] CRAN (R 4.1.2)
 mime               0.12     2021-09-28 [1] CRAN (R 4.1.2)
 miniUI             0.1.1.1  2018-05-18 [1] CRAN (R 4.1.0)
 modelr             0.1.8    2020-05-19 [1] CRAN (R 4.1.2)
 munsell            0.5.0    2018-06-12 [1] CRAN (R 4.1.2)
 nlme               3.1-153  2021-09-07 [1] CRAN (R 4.1.2)
 org.Mm.eg.db     * 3.14.0   2022-02-24 [1] Bioconductor
 pals               1.7      2021-04-17 [1] CRAN (R 4.1.0)
 parallelly         1.30.0   2021-12-17 [1] CRAN (R 4.1.0)
 patchwork          1.1.1    2020-12-17 [1] CRAN (R 4.1.0)
 pbapply            1.5-0    2021-09-16 [1] CRAN (R 4.1.2)
 pillar             1.6.4    2021-10-18 [1] CRAN (R 4.1.2)
 pkgbuild           1.2.0    2020-12-15 [1] CRAN (R 4.1.2)
 pkgconfig          2.0.3    2019-09-22 [1] CRAN (R 4.1.2)
 pkgload            1.2.3    2021-10-13 [1] CRAN (R 4.1.2)
 plotly             4.10.0   2021-10-09 [1] CRAN (R 4.1.2)
 plyr               1.8.6    2020-03-03 [1] CRAN (R 4.1.2)
 png                0.1-7    2013-12-03 [1] CRAN (R 4.1.2)
 polyclip           1.10-0   2019-03-14 [1] CRAN (R 4.1.2)
 prettyunits        1.1.1    2020-01-24 [1] CRAN (R 4.1.2)
 processx           3.5.2    2021-04-30 [1] CRAN (R 4.1.2)
 promises           1.2.0.1  2021-02-11 [1] CRAN (R 4.1.0)
 ps                 1.6.0    2021-02-28 [1] CRAN (R 4.1.2)
 purrr            * 0.3.4    2020-04-17 [1] CRAN (R 4.1.2)
 qvalue             2.26.0   2021-10-26 [1] Bioconductor
 R6                 2.5.1    2021-08-19 [1] CRAN (R 4.1.2)
 RANN               2.6.1    2019-01-08 [1] CRAN (R 4.1.2)
 RColorBrewer       1.1-2    2014-12-07 [1] CRAN (R 4.1.2)
 Rcpp               1.0.7    2021-07-07 [1] CRAN (R 4.1.2)
 RcppAnnoy          0.0.19   2021-07-30 [1] CRAN (R 4.1.2)
 RCurl              1.98-1.5 2021-09-17 [1] CRAN (R 4.1.2)
 readr            * 2.0.2    2021-09-27 [1] CRAN (R 4.1.2)
 readxl             1.3.1    2019-03-13 [1] CRAN (R 4.1.0)
 remotes            2.4.1    2021-09-29 [1] CRAN (R 4.1.2)
 reprex             2.0.1    2021-08-05 [1] CRAN (R 4.1.2)
 reshape2           1.4.4    2020-04-09 [1] CRAN (R 4.1.2)
 reticulate         1.22     2021-09-17 [1] CRAN (R 4.1.2)
 rlang              0.4.12   2021-10-18 [1] CRAN (R 4.1.2)
 rmarkdown          2.11     2021-09-14 [1] CRAN (R 4.1.2)
 ROCR               1.0-11   2020-05-02 [1] CRAN (R 4.1.2)
 rpart              4.1-15   2019-04-12 [1] CRAN (R 4.1.2)
 rprojroot          2.0.2    2020-11-15 [1] CRAN (R 4.1.2)
 RSQLite            2.2.8    2021-08-21 [1] CRAN (R 4.1.0)
 rstudioapi         0.13     2020-11-12 [1] CRAN (R 4.1.2)
 Rtsne              0.15     2018-11-10 [1] CRAN (R 4.1.0)
 rvest              1.0.2    2021-10-16 [1] CRAN (R 4.1.2)
 S4Vectors        * 0.32.2   2021-11-07 [1] Bioconductor
 sass               0.4.0    2021-05-12 [1] CRAN (R 4.1.0)
 scales             1.1.1    2020-05-11 [1] CRAN (R 4.1.2)
 scattermore        0.7      2020-11-24 [1] CRAN (R 4.1.2)
 scatterpie         0.1.7    2021-08-20 [1] CRAN (R 4.1.2)
 sctransform        0.3.3    2022-01-13 [1] CRAN (R 4.1.2)
 sessioninfo        1.2.1    2021-11-02 [1] CRAN (R 4.1.2)
 Seurat           * 4.0.6    2021-12-16 [1] CRAN (R 4.1.2)
 SeuratObject     * 4.0.4    2021-11-23 [1] CRAN (R 4.1.2)
 shadowtext         0.0.9    2021-09-19 [1] CRAN (R 4.1.2)
 shiny              1.7.1    2021-10-02 [1] CRAN (R 4.1.0)
 spatstat.core      2.3-2    2021-11-26 [1] CRAN (R 4.1.2)
 spatstat.data      2.1-2    2021-12-17 [1] CRAN (R 4.1.2)
 spatstat.geom      2.3-1    2021-12-10 [1] CRAN (R 4.1.2)
 spatstat.sparse    2.1-0    2021-12-17 [1] CRAN (R 4.1.2)
 spatstat.utils     2.3-0    2021-12-12 [1] CRAN (R 4.1.2)
 stringi            1.7.5    2021-10-04 [1] CRAN (R 4.1.2)
 stringr          * 1.4.0    2019-02-10 [1] CRAN (R 4.1.2)
 survival           3.2-13   2021-08-24 [1] CRAN (R 4.1.2)
 tensor             1.5      2012-05-05 [1] CRAN (R 4.1.2)
 testthat           3.1.0    2021-10-04 [1] CRAN (R 4.1.2)
 tibble           * 3.1.6    2021-11-07 [1] CRAN (R 4.1.2)
 tidygraph          1.2.0    2020-05-12 [1] CRAN (R 4.1.2)
 tidyr            * 1.1.4    2021-09-27 [1] CRAN (R 4.1.2)
 tidyselect         1.1.1    2021-04-30 [1] CRAN (R 4.1.2)
 tidytree           0.3.6    2021-11-12 [1] CRAN (R 4.1.2)
 tidyverse        * 1.3.1    2021-04-15 [1] CRAN (R 4.1.2)
 treeio             1.18.1   2021-11-14 [1] Bioconductor
 tweenr             1.0.2    2021-03-23 [1] CRAN (R 4.1.2)
 tzdb               0.2.0    2021-10-27 [1] CRAN (R 4.1.2)
 usethis            2.1.3    2021-10-27 [1] CRAN (R 4.1.2)
 utf8               1.2.2    2021-07-24 [1] CRAN (R 4.1.2)
 uwot               0.1.11   2021-12-02 [1] CRAN (R 4.1.2)
 vctrs              0.3.8    2021-04-29 [1] CRAN (R 4.1.2)
 viridis            0.6.2    2021-10-13 [1] CRAN (R 4.1.0)
 viridisLite        0.4.0    2021-04-13 [1] CRAN (R 4.1.2)
 withr              2.4.2    2021-04-18 [1] CRAN (R 4.1.2)
 xfun               0.28     2021-11-04 [1] CRAN (R 4.1.2)
 xml2               1.3.2    2020-04-23 [1] CRAN (R 4.1.0)
 xtable             1.8-4    2019-04-21 [1] CRAN (R 4.1.2)
 XVector            0.34.0   2021-10-26 [1] Bioconductor
 yaml               2.2.1    2020-02-01 [1] CRAN (R 4.1.2)
 yulab.utils        0.0.4    2021-10-09 [1] CRAN (R 4.1.0)
 zlibbioc           1.40.0   2021-10-26 [1] Bioconductor
 zoo                1.8-9    2021-03-09 [1] CRAN (R 4.1.2)

 [1] /Library/Frameworks/R.framework/Versions/4.1/Resources/library

───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
LS0tCnRpdGxlOiAiUXVpY2sgQW5hbHlzaXMiCm91dHB1dDogCiAgaHRtbF9ub3RlYm9vazoKICAgIHRoZW1lOiBmbGF0bHkKICAgIHRvYzogdHJ1ZQogICAgdG9jX2Zsb2F0OiB0cnVlCi0tLQoKIyBXaGF0IGlzIHRoaXM/CkUxMS41IChvciBFMTE/KSBtb3VzZSBSUEUKClJ1biBvbiAxMHggdjMgcGxhdGZvcm0KClRoaXMgaXMgYSB0cmlhbCBydW4gdG8gZGV0ZXJtaW5lIHdoZXRoZXIgRWxhbiBjYW4gcHJvY2VzcyBtb3VzZSB0aXNzdWUgYXQgdGhpcyB2ZXJ5IGVhcmx5IHRpbWUgcG9pbnQuCgojIFdoZW4KMjAyMi0wNS0xMAoKIyBQcm9jZXNzIERhdGEKYGBge2Jhc2h9ClJzY3JpcHQgLWUgJ2xpYnJhcnkocm1hcmtkb3duKTsgcm1hcmtkb3duOjpyZW5kZXIoIjAwX3Byb2Nlc3MuUm1kIiwgImh0bWxfZG9jdW1lbnQiKScKYGBgCgojIExvYWQgRGF0YQoKUXVpY2sgcGVlayBhdCBFbGFuJ3MgZmF2b3JpdGUgWmZwNTAzIGFuZCBob3cgd2hpY2ggY2x1c3RlciBpdCBpcyBkaWZmZXJlbnRpYWxseSBleHByZXNzZWQgaW4KYGBge3J9CmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KFNldXJhdCkKbG9hZCgnLi4vZGF0YS8wMF9wcm9jZXNzX291dHB1dC5SZGF0YScpCnNldXJhdC5tYXJrZXJzQ0MgPC0gc2V1cmF0Lm1hcmtlcnNDQyAlPiUgYmluZF9yb3dzKC5pZCA9ICdjbHVzdGVyJykgJT4lIGFzX3RpYmJsZShyb3duYW1lcyA9ICdHZW5lJykgJT4lIG11dGF0ZShHZW5lID0gZ3N1YignXFwuXFwuXFwuXFxkKycsJycsR2VuZSkpCiMgc2V1cmF0Lm1hcmtlcnNDQyAlPiUgCiMgICBncm91cF9ieShjbHVzdGVyKSAlPiUgc2xpY2VfbWF4KGF2Z19sb2cyRkMsIG4gPSAzLCB3aXRoX3RpZXMgPSBGQUxTRSkgJT4lIAojICAgRFQ6OmRhdGF0YWJsZSgpCnNldXJhdC5tYXJrZXJzQ0MgJT4lIGJpbmRfcm93cygpICU+JSAgZmlsdGVyKEdlbmUgPT0gJ1pmcDUwMycpCmBgYAoKIyBHTyBUZXJtcwpGb3IgZWFjaCBjbHVzdGVyCgpUbyBoZWxwIHJvdWdobHkgZmlndXJlIG91dCB3aGljaCBjbHVzdGVycyBhcyB3aGljaCBjZWxsIHR5cGVzCmBgYHtyLCBmaWcuaGVpZ2h0PTcsIGZpZy53aWR0aD00fQpsaWJyYXJ5KGNsdXN0ZXJQcm9maWxlcikKbGlicmFyeShlbnJpY2hwbG90KQplZ191bml2ZXJzZSA9IGJpdHIoc2V1cmF0Q0MgJT4lIHJvdy5uYW1lcygpLCBmcm9tVHlwZT0iU1lNQk9MIiwgdG9UeXBlPSJFTlRSRVpJRCIsIE9yZ0RiPSJvcmcuTW0uZWcuZGIiKQoKZ29fZW5yaWNoQ0MgPC0gbGlzdCgpCmZvciAoaSBpbiBzZXVyYXQubWFya2Vyc0NDJGNsdXN0ZXIgJT4lIHVuaXF1ZSgpKXsKICBwcmludChpKQogIGRpZmZfZ2VuZXMgPC0gc2V1cmF0Lm1hcmtlcnNDQyAlPiUgZmlsdGVyKGNsdXN0ZXIgID09IGkpCiAgZWdfZGlmZl9nZW5lcyA8LSBiaXRyKGRpZmZfZ2VuZXMkR2VuZSwgZnJvbVR5cGU9IlNZTUJPTCIsIHRvVHlwZT0iRU5UUkVaSUQiLCBPcmdEYj0ib3JnLk1tLmVnLmRiIikKICBlZ19kaWZmX2dlbmVzIDwtIGRpZmZfZ2VuZXMgJT4lIGxlZnRfam9pbiguLCBlZ19kaWZmX2dlbmVzLCBieSA9IGMoJ0dlbmUnID0gJ1NZTUJPTCcpKQogIGdvX2VucmljaENDW1tpXV0gPC0gZW5yaWNoR08oZ2VuZSAgICAgICAgICA9IGVnX2RpZmZfZ2VuZXMkRU5UUkVaSUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdmVyc2UgICAgICA9IGVnX3VuaXZlcnNlJEVOVFJFWklELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9yZ0RiICAgICAgICAgPSBvcmcuTW0uZWcuZGIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb250ICAgICAgICAgICA9ICJhbGwiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBBZGp1c3RNZXRob2QgPSAiQkgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB2YWx1ZUN1dG9mZiAgPSAwLjAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF2YWx1ZUN1dG9mZiAgPSAwLjA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRhYmxlICAgICAgPSBUUlVFKQp9CgoKCmZvciAoaSBpbiBzZXVyYXQubWFya2Vyc0NDJGNsdXN0ZXIgJT4lIHVuaXF1ZSgpICU+JSBzb3J0KCkpewogIHByaW50KGRvdHBsb3QoZ29fZW5yaWNoQ0NbW2ldXSwgc2hvd0NhdGVnb3J5PTMwKSArIGdndGl0bGUoZ2x1ZTo6Z2x1ZSgiRG90cGxvdCBmb3IgY2x1c3RlciB7aX0iKSkpCn0KIAoKYGBgCgojIEhhbmQgbGFiZWwgZWFjaCBjbHVzdGVyIChndWVzc2luZyB0aGUgY2VsbCB0eXBlKQpgYGB7cn0KY3RfY2x1c3Rlcl9DQyA8LSByYmluZChjKDAsICJSUEMiKSwKICBjKDEsICdSUEMnKSwKICBjKDIsICdSUEUgUHJlY3Vyc29yJyksCiAgYygzLCAnRmlicm9ibGFzdCcpLAogIGMoNCwgJ0ZpYnJvYmxhc3QnKSwKICBjKDUsICdPcHRpYyBGaXNzdXJlJyksCiAgYyg2LCAnUHJvbGlmZXJhdGluZyBSUEMnKSwKICBjKDcsICdFcGl0aGVsaWFsJyksCiAgYyg4LCAnUmVkIEJsb29kIENlbGwnKSwKICBjKDksICdDb3JuZWFsIFByb2dlbml0b3InKSwKICBjKDEwLCAnQmxvb2QgVmVzc2VsJyksCiAgYygxMSwgIlBCTUMiKSwKICBjKDEyLCAiTksvVCIpLAogIGMoMTMsICJMZW5zIgogICkpICU+JSBkYXRhLmZyYW1lKCkKY29sbmFtZXMoY3RfY2x1c3Rlcl9DQykgPC0gYygnc2V1cmF0X2NsdXN0ZXJzJywnQ2VsbFR5cGUnKQpzZXVyYXRDQ0BtZXRhLmRhdGEkQ2VsbFR5cGUgPC0gc2V1cmF0Q0NAbWV0YS5kYXRhICU+JSBkcGx5cjo6c2VsZWN0KHNldXJhdF9jbHVzdGVycykgJT4lIGxlZnRfam9pbihjdF9jbHVzdGVyX0NDKSAlPiUgcHVsbChDZWxsVHlwZSkKCiMgY3RfY2x1c3RlciA8LSBjKDAsICJSUEMiLAojICAgMSwgJ0ZpYnJvYmxhc3RzJywKIyAgIDIsICdSUEMnLAojICAgMywgJ1JQRSBQcmVjdXJzb3InLAojICAgNCwgJ0Nvcm5lYSAtIEpDVCAtIFRNPycsCiMgICA1LCAnT3B0aWMgRmlzc3VyZScsCiMgICA2LCAnUHJvbGlmZXJhdGluZyBSUEMnLAojICAgNywgJ0VwaXRoZWxpYWwnLAojICAgOCwgJ1JlZCBCbG9vZCBDZWxsJywKIyAgIDksICc/JywKIyAgIDEwLCAnVmVzc2VsJywKIyAgIDExLCAiTWFjcm9waGFnZS9NaWNyb2dsaWEiKQoKYGBgCgojIFVNQVAKV2l0aCBteSBwb29ybHkgcmVzZWFyY2hlZCBjZWxsIHR5cGUgYXNzaWdubWVudHMKYGBge3IsIGZpZy53aWR0aD01LCBmaWcuaGVpZ2h0PTV9CkRpbVBsb3Qoc2V1cmF0Q0MsIHJlZHVjdGlvbiA9ICJ1bWFwIiwgZ3JvdXAuYnkgPSAnQ2VsbFR5cGUnLCBsYWJlbCA9IFRSVUUsIGxhYmVsLmJveCA9IFRSVUUpICsgCiAgc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcyA9IHBhbHM6OmFscGhhYmV0MigpICU+JSB1bm5hbWUoKSkgKwogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IHBhbHM6OmFscGhhYmV0MigpICU+JSB1bm5hbWUoKSApIApgYGAKCiMgQ2VsbCBQaGFzZSAKYGBge3J9CkRpbVBsb3Qoc2V1cmF0Q0MsIGdyb3VwLmJ5ID0gJ1BoYXNlJykKYGBgCiMgTWFya2VycwpgYGB7ciwgZmlnLndpZHRoPTh9CkZlYXR1cmVQbG90KHNldXJhdENDLCBmZWF0dXJlcyA9IGMoIlBheDIiLCAiTnRuMSIsICJTbW9jMiIsICJWYXgxIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUdHIiLCAiRGN0IiwgIlJobyIsICJaZnA1MDMiLCAiTWl0ZiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQYXg2IikpCmBgYAoKIyBUb3AgMTAgQ2x1c3RlciA1IChPcHRpYyBGaXNzdXJlPykgRGlmZiBHZW5lcwpgYGB7ciwgZmlnLndpZHRoPTh9Cgp0b3BfZ2VuZXMgPC0gc2V1cmF0Lm1hcmtlcnNDQyAlPiUgIAogIGxlZnRfam9pbihzZXVyYXRDQ0BtZXRhLmRhdGEgJT4lIGFzX3RpYmJsZSgpICU+JSAKICAgICAgICAgICAgICBkcGx5cjo6c2VsZWN0KGNsdXN0ZXIgPSBzZXVyYXRfY2x1c3RlcnMsIENlbGxUeXBlKSAlPiUgdW5pcXVlKCkpICU+JSAKICBncm91cF9ieShjbHVzdGVyLCBDZWxsVHlwZSkgJT4lIHRvcF9uKDMwLCBhdmdfbG9nMkZDKSAlPiUgCiAgZmlsdGVyKGNsdXN0ZXIgPT0gNSkgJT4lIGhlYWQoMTUpICU+JSBwdWxsKEdlbmUpCkZlYXR1cmVQbG90KHNldXJhdENDLCBmZWF0dXJlcyA9IHRvcF9nZW5lcykKYGBgCgojIFpmcDUwMyBMaWtlIEdlbmVzCgpaZnA1MDMgaXMgb3ZlcmV4cHJlc3NlZCBpbiBib3RoIGNsdXN0ZXJzIDIgYW5kIDUKCldoYXQgb3RoZXIgZ2VuZXMgaGF2ZSB0aGlzIGNoYXJhY3RlcmlzdGljPwpgYGB7ciwgZmlnLndpZHRoPTh9Cgogc2V1cmF0Lm1hcmtlcnNDQyAlPiUgZmlsdGVyKGNsdXN0ZXIgJWluJSBjKDIsNSksIGF2Z19sb2cyRkMgPiAwLjcsIHBfdmFsX2FkaiA8IDAuMDEpICU+JSAKICBncm91cF9ieShHZW5lKSAlPiUgCiAgc3VtbWFyaXNlKENvdW50ID0gbigpLCBhdmdfbG9nMkZDID0gbWVhbihhdmdfbG9nMkZDKSkgJT4lIAogIGZpbHRlcihDb3VudCA9PSAyKQoKRmVhdHVyZVBsb3Qoc2V1cmF0Q0MsIGZlYXR1cmVzID0gc2V1cmF0Lm1hcmtlcnNDQyAlPiUgZmlsdGVyKGNsdXN0ZXIgJWluJSBjKDIsNSksIGF2Z19sb2cyRkMgPiAwLjcsIHBfdmFsX2FkaiA8IDAuMDEpICU+JSAKICBncm91cF9ieShHZW5lKSAlPiUgCiAgc3VtbWFyaXNlKENvdW50ID0gbigpLCBhdmdfbG9nMkZDID0gbWVhbihhdmdfbG9nMkZDKSkgJT4lIAogIGZpbHRlcihDb3VudCA9PSAyKSAlPiUgCiAgICBwdWxsKEdlbmUpKQoKYGBgCgojIENsdXN0ZXIgZGlmZiBleHByZXNzZWQgZ2VuZXMKClRvcCAzMCBnZW5lIGZvciBlYWNoIGNsdXN0ZXIgKEkgd2FzIHVzaW5nIHRoaXMgdGFibGUgYWxvbmcgd2l0aCB0aGUgR08gdGVybXMgdG8gZ3Vlc3MgZWFjaCBjZWxsIHR5cGUgZm9yIGVhY2ggY2x1c3RlcikKYGBge3J9CnNldXJhdC5tYXJrZXJzQ0MgJT4lICAKICBsZWZ0X2pvaW4oc2V1cmF0Q0NAbWV0YS5kYXRhICU+JSBhc190aWJibGUoKSAlPiUgCiAgICAgICAgICAgICAgZHBseXI6OnNlbGVjdChjbHVzdGVyID0gc2V1cmF0X2NsdXN0ZXJzLCBDZWxsVHlwZSkgJT4lIHVuaXF1ZSgpKSAlPiUgCiAgZ3JvdXBfYnkoY2x1c3RlciwgQ2VsbFR5cGUpICU+JSB0b3BfbigzMCwgYXZnX2xvZzJGQykgJT4lIAogIHJlbG9jYXRlKENlbGxUeXBlKSAlPiUgCiAgYXJyYW5nZShjbHVzdGVyKSAlPiUgCiAgRFQ6OmRhdGF0YWJsZSgpCmBgYAoKIyBRdWljayBjb21tZW50cwoKMS4gVGhlIGV4cGVyaW1lbnQgYXBwZWFycyB0byBoYXZlIHdvcmtlZAoyLiBZb3Ugc2VlbSB0byBoYXZlIGEgT3B0aWMgRmlzc3VyZSBzcGVjaWZpYyBjbHVzdGVyPz8gQ2x1c3RlciA1LiBTZXZlcmFsIGludGVyZXN0aW5nIGdlbmVzIGluIHRoYXQgY2x1c3Rlci4KCiMgU2Vzc3Npb24gSW5mbwpgYGB7cn0KZGV2dG9vbHM6OnNlc3Npb25faW5mbygpCmBgYAo=